/**
 * @Author: Jiang Zhongxun
 * @Date: 2024-10-06 19:56:48
 * @FilePath: /Socket/practiceProject/include/server/userSys.h
 * @Description: 用户端接口。包含：发起查验申请，查验申请记录、修改驳回申请、删除办结记录。
 * @Copyright (c) 2024 by 蒋仲勋, All Rights Reserved.
 */
#ifndef _USERSYS_H_
#define _USERSYS_H_

#include <arpa/inet.h>
#include <errno.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <sqlite3.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/un.h>
#include <sys/wait.h>
#include <unistd.h>

/**
 * @description: 用户发起查验申请
 * @param {sqlite3} *db SQLite3数据库指针句柄
 * @param {char} *applyUser 申请人名称
 * @return {*} 成功返回0，失败返回非0的数
 */
int applyNewCheck(sqlite3 *db, char *applyUser);

/**
 * @description: 检索用户个人的所有查验申请记录
 * @param {sqlite3} *db SQLite3数据库指针句柄
 * @param {char} *applyUser 申请人名称
 * @return {*} 成功返回0，失败返回非0的数
 */
int searchCheckItem(sqlite3 *db, char *applyUser);

/**
 * @description: 修改用户个人的驳回申请
 * @param {sqlite3} *db SQLite3数据库指针句柄
 * @return {*} 成功返回0，失败返回非0的数
 */
int updateCheckItem(sqlite3 *db, char *applyUser);

/**
 * @description: 删除用户个人的办结(已查验)记录
 * @param {sqlite3} *db SQLite3数据库指针句柄
 * @return {*} 成功返回0，失败返回非0的数
 */
int deleteCheckItem(sqlite3 *db, char *applyUser);

/**
 * @description: 普通用户服务端通信
 * @param {int} newfd 套接字
 * @return {*} 成功返回0，失败返回-1
 */
int userTcpServerCom(int newfd, sqlite3 *db);

#endif
